This frees up any cached surfaces and textures in the iconhelper,
ensuring that the renderer can release its texture data.
G_DEFINE_TYPE_WITH_PRIVATE (GtkIconHelper, gtk_icon_helper, GTK_TYPE_CSS_GADGET)
-static void
+void
gtk_icon_helper_invalidate (GtkIconHelper *self)
{
g_clear_pointer (&self->priv->texture, gsk_texture_unref);
void _gtk_icon_helper_set_force_scale_pixbuf (GtkIconHelper *self,
gboolean force_scale);
+void gtk_icon_helper_invalidate (GtkIconHelper *self);
void gtk_icon_helper_invalidate_for_change (GtkIconHelper *self,
GtkCssStyleChange *change);
static void
gtk_image_unrealize (GtkWidget *widget)
{
- gtk_image_reset_anim_iter (GTK_IMAGE (widget));
+ GtkImage *image = GTK_IMAGE (widget);
+ GtkImagePrivate *priv = image->priv;
+
+ gtk_image_reset_anim_iter (image);
+
+ gtk_icon_helper_invalidate (priv->icon_helper);
GTK_WIDGET_CLASS (gtk_image_parent_class)->unrealize (widget);
}